perm filename TAK.S1[TIM,LSP] blob
sn#620912 filedate 1981-10-21 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 title tak
C00004 ENDMK
C⊗;
title tak
DEFINE OUTSTR "(<{B}>)" STRING
JSR #⊂STRING⊃,STROUT
TERMIN
pc←%3
a←%10
b←%11
c←%12
fxp←%34
sp←%36
go: wspid #sp
mov.d.d sp,[pdl ↔ pdlend]
mov.d.d fxp,[fxpdl ↔ fxpdlend]
timer time1
movms.3 a,[18. ↔ 12. ↔ 6]
jsr tak1
timer time2
outstr [asciz /Answer = /]
mov a,c
jsr decout
outstr [asciz / in /]
sub rta,time2+4,time1+4
quo rta,#10. ;convert to microseconds
mov a,rta
jsr decout
outstr [asciz / microseconds.
/]
halt .
tak1: skp.gtr a,b
retsr pc,(sp)
tak2: add fxp,#5*4
movms.3 -3(fxp),a
djmp.leq a
jsr tak2
mov -5(fxp),c
mov.d.d a,-2(fxp)
mov c,-3(fxp)
djmp.leq a
jsr tak2
mov -4(fxp),c
mov a,-1(fxp)
mov.d.d b,-3(fxp)
djmp.leq a
jsr tak2
mov.d.d a,-5(fxp)
sub fxp,#5*4
jmp.gtr a,tak2
retsr pc,(sp)
decout: div a,#10.
jmpz.eql a,decou1
jsr b,decout
decou1: add b,?"0"
outchr b
retsr b,(sp)
STROUT: ALLOC.2 A,#2*4
MOV A,-4(SP) ;GET BYTE ADDRESS OF STRING
STROU1: MOV.S.Q B,(A) ;GET NEXT BYTE
JMPZ.EQL B,STROUD
OUTCHR B
IJMPA A,STROU1
STROUD: MOVMS.2 A,-2(SP)
RETSR PC,-2(SP)
time1: block 2
time2: block 2
pdl: block 5000
pdlend:
fxpdl: block 5000
fxpdlend:
end go